package com.qqq.adminservice.user.service;

import com.qqq.adminservice.user.domain.dto.PasswordLoginDTO;
import com.qqq.adminservice.user.domain.dto.SysUserDTO;
import com.qqq.adminservice.user.domain.dto.SysUserListReqDTO;
import com.qqq.adminservice.user.domain.dto.SysUserLoginDTO;
import com.qqq.commondomain.domain.dto.TokenDTO;
import java.util.List;

/**
 * B端用户服务接口
 */
public interface ISysUserService {

    /**
     * B端用户账户密码登录
     * @param passwordLoginDTO 用户登录DTO
     * @return tokenDTO
     */
    TokenDTO login(PasswordLoginDTO passwordLoginDTO);

    /**
     * 新增或修改用户信息
     * 修改只能修改昵称、备注、状态，其他参数传了也不改，保证业务
     * 修改时，需带上昵称、备注、状态。逻辑为直接覆盖原有数据
     *
     * @param sysUserDTO
     * @return
     */
    Long addOrEditUser(SysUserDTO sysUserDTO);

    /**
     * 查询用户列表
     *
     * @param sysUserListReqDTO
     * @return
     */
    List<SysUserDTO> getUserList(SysUserListReqDTO sysUserListReqDTO);

    /**
     * 获取B端用户登录信息
     * @return B端用户信息
     */
    SysUserLoginDTO getLoginUser();
}
